home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DS-CD ROM 2 1993 August
/
DS CD-ROM 2.Ausgabe (August 1993).iso
/
programm
/
ds0257
/
doc.exe
/
ADRESSEN.DOC
< prev
next >
Wrap
Text File
|
1992-02-06
|
4KB
|
113 lines
─────────────────────────────────────────────────────────────────────────────
Dokumentation zur Datei: ADRESSEN.INC
─────────────────────────────────────────────────────────────────────────────
ADRESSEN.INC - Routinen zur Bearbeitung von (FAR-)Adressen
(für den Assembler A86)
(c) Bernd Schemmer 1990 - 1992
Letzter Update: 04.02.1992
■ Beschreibung:
---------------
Alle Routinen (außer Make20BitValue) normalisieren die Adressen.
Eine normalisierte Adresse ist gekennzeichnet durch einen
Offset-Anteil zwischen 00h und 0Fh.
Die Routinen benutzen das Register AX als Arbeitsregister.
■ Routinen:
-----------
NormalisiereES_DI - Normalisiert die Adresse in ES:DI
NormalisiereDS_SI - Normalisiert die Adresse in DS:SI
VergleicheAdressen - Vergleicht die Adressen in DS:SI und ES:DI
AddOffsetToES_DI - Addiert einen Offset auf die Adresse in ES:DI
AddOffsetToDS_SI - Addiert einen Offset auf die Adresse in DS:SI
Make20BitValue - Rechnet eine 32-Bit-Adresse in eine 20-Bit-Zahl
um
Make32BitValue - Rechnet eine 20-Bit-Zahl in eine 32-Bit-Adresse
um
----------------------------
Make32BitAdress
Funktion: Konvertiert eine 20-Bit-Zahl in eine Adresse aus Segment
und Offset
Eingabe: DX:AX = 20-Bit-Zahl (Aufbau: 000n:nnnn)
Ausgabe: DX:AX = 32-Bit-Adresse (Aufbau: ssss:000o)
----------------------------
Make20BitValue
Funktion: Konvertiert eine Adresse aus Segment und Offset in
eine 20-Bit-Zahl
Eingabe: DX:AX = Adresse (ssss:oooo)
Ausgabe: DX:AX = 20-Bit-Zahl (000n:nnnn)
----------------------------
NormalisiereDS_SI
Funktion: Normalisiert die Adresse in den Registern DS:SI
Eingabe: DS:SI = Adresse
Ausgabe: DS:SI = normalisierte Adresse
AX = neues Segment
(keine Fehlerüberprüfung)
----------------------------
NormalisiereES_DI
Funktion: Normalisiert die Adresse in den Registern ES:DI
Eingabe: ES:DI = Adresse
Ausgabe: ES:DI = normalisierte Adresse
AX = neues Segment
(keine Fehlerüberprüfung)
----------------------------
VergleicheAdressen
Funktion: Vergleicht die Adressen in den Registern DS:SI und ES:DI
Eingabe: DS:SI = erste Adresse
ES:DI = zweite Adresse
Ausgabe: DS:SI und ES:DI werden normalisiert
Flags wie sie nach dem Vergleich CMP DS:SI,ES:DI wären
(keine Fehlerüberprüfung)
----------------------------
AddOffsetToDS_SI
Funktion: Addiert den Wert aus BX auf die Adresse in DS:SI
Eingabe: DS:SI = Adresse
BX = zu addierender Offset
Ausgabe: CF = 0 ->> okay
DS:SI = neue Adresse (normalisiert)
CF = 1 ->> Fehler
DS:SI unverändert
----------------------------
AddOffsetToES_DI
Funktion: Addiert den Wert aus BX auf die Adresse in ES:DI
Eingabe: ES:DI = Adresse
BX = zu addierender Offset
Ausgabe: CF = 0 ->> okay
ES:DI = neue Adresse (normalisiert)
CF = 1 ->> Fehler
ES:DI unverändert